/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tecprog.service;

import tecprog.model.Aluno;
import tecprog.model.AlunoJpaController;
import tecprog.model.exceptions.NonexistentEntityException;
import java.io.Serializable;
import java.util.Iterator;
import java.util.List;

/**
 *
 * @author Igor
 * Classe para serviços na tabela aluno
 */
public class TipoAlunoService implements Serializable {
    
    /**
     * Declarando uma variavel do tipo AlunojpaController para manipulaçao do banco de dados.
     */
    private AlunoJpaController jpa;
    
    /**
     * Metodo que instancia um novo objeto controlador.
     */
    public TipoAlunoService() {
        jpa = new AlunoJpaController();
    }
    
    /**
     * Método para salvamento das informações obtidas nas telas para o banco de dados na tabela aluno.
     * @param aluno
     * @throws NonexistentEntityException
     * @throws Exception 
     */
    public void salvar(Aluno aluno) throws NonexistentEntityException, Exception {
        if (aluno.getMatricula() != null)
            jpa.edit(aluno);
        else
            jpa.create(aluno);        
    }
    
    /**
     * Método para exclusao de dados presentes na tabela do banco de dados do aluno.
     * @param aluno
     * @throws NonexistentEntityException 
     */
    public void excluir(Aluno aluno) throws NonexistentEntityException {
        jpa.destroy(aluno.getMatricula());        
    }
    
    /**
     * Método que carrega todas as informaçoes presentes na tabela aluno do banco de dados.
     * @return 
     */
    public List<Aluno> recarregar() {
        return jpa.findAlunoEntities();
    }
    
    public Aluno verificarBanco(Aluno objeto){
         List lista = jpa.findAlunoEntities();
         Iterator i = lista.iterator();
         boolean achei = false;
         while(!achei && i.hasNext()){
             Aluno a = (Aluno) i.next();
             if(objeto.getAssuntolidosnosjornais().equals(a.getMatricula()))
                 return a;
         }
    return null;
         }
    
    public Aluno efetuarPesquisa(String assuntolidosnosjornais){
        Aluno al = new Aluno();
        al.setAssuntolidosnosjornais(assuntolidosnosjornais);
        Aluno registrado = verificarBanco(al);
        if(registrado!=null && registrado.getMatricula().equals(assuntolidosnosjornais))
            return al;
        return null;
    }
}

